package com.san.metadata.service;

import java.util.List;
import java.util.Map;

import com.san.metadata.domain.BusinessDataDO;
import com.san.metadata.vo.BusinessDataVO;

/**
 * 业务元数据service
 * 
 * @author SuperSR
 * @date 2019年3月8日 下午5:31:57
 *
 */
public interface BusinessDataService {

	public BusinessDataDO getById(Long id);

	public BusinessDataDO getByName(String busiName);

	/**
	 * 查询业务元数据列表，传入参数中数据类型、业务大类、业务小类，传入数据为String类型
	 * 
	 * @param map
	 * @return
	 */
	public List<BusinessDataDO> list(Map<String, Object> map);

	int count(Map<String, Object> map);

	public int save(BusinessDataVO businessDataVO);

	public int doEdit(BusinessDataVO businessDataVO);

	/**
	 * 根据id字符串查询多个字段名称
	 * 
	 * @param id
	 * @return
	 */
	public String getByDetFieldId(String id);

	public int remove(Long id);

	public int batchRemove(Long[] ids);

	/**
	 * 修改业务元数据状态
	 * 
	 * @param businessDataVO 业务元数据实体类
	 * @return
	 */
	public int changeStatus(BusinessDataVO businessDataVO);

	/**
	 * 根据数据类型查询业务元数据
	 * 
	 * @param dataType 数据类型
	 * @return
	 */
	public List<BusinessDataDO> getByDataType(String dataType);

	/**
	 * 根据算法类型查询业务元数据
	 * 
	 * @param algorithmType 算法类型
	 * @return
	 */
	public List<BusinessDataDO> getByAlgorithmType(List<Integer> AlgorithmType);
}
